Thread-Sensitive Points-to Analysis for Multithreaded Java Programs
نویسندگان
چکیده
Every running thread has its own thread context that consists of values of the fields of the target thread object. To consider the thread context in understanding the behaviors of concurrently running threads, we propose a thread-sensitive interprocedural analysis for multithreaded Java applications. Our thread-sensitive analysis exploits thread-context information, instead of the conventional calling-context information, for computing dataflow facts holding at a statement. The thread-sensitive analysis is highly effective in distinguishing dataflow facts for different threads, producing more precise dataflow information than non-thread-sensitive analysis. The analysis is also generally much more efficient than conventional (calling) context-sensitive analysis. It uses the target thread objects at a thread start site to distinguish different thread contexts. We give a thread-sensitive points-to analysis as an instance of thread-sensitive analysis. We have implemented it and give some experimental results. We discuss several possible applications of the analysis.
منابع مشابه
Compositional Pointer and Escape Analysis for Multithreaded Java Programs
This paper presents a new combined pointer and escape analysis algorithm for Java programs with unstructured multithreading. The algorithm is based on the abstraction of parallel interaction graphs, which characterize the points-to and escape relationships between objects and the ordering relationships between actions performed by multiple parallel threads. To our knowledge, this algorithm is t...
متن کاملChecking Concise Specifications for Multithreaded Software
Ensuring the reliability of multithreaded software systems is difficult due to the potential for subtle interactions between threads. Unfortunately, checking tools for such systems do not scale to programs with a large number of threads and procedures. To improve this shortcoming, we present a verification technique that uses concise specifications to analyze large multithreaded programs modula...
متن کاملException Analysis for Multithreaded Java Programs
This paper presents a static analysis that estimates uncaught exceptions in multithreaded Java programs. In Java, throwing exceptions across threads is deprecated because of the safety problem. Instead of restricting programmers’ freedom, we extend Java language to support multithreaded exception handling and propose a tool to detect uncaught exceptions in the input programs. Our analysis consi...
متن کاملEjava | Causal Extensions for Java
Programming languages like Java provide designers with a variety of classes that simplify the process of building multithreaded programs. Though useful, especially in the creation of reactive systems, multithreaded programs present challenging problems such as race conditions and synchronization issues. Validating these programs against a speci cation is also not trivial since Java does not cle...
متن کاملAbstraction and Verification of Properties of a Real-Time Java
ion and Verification of Properties of a Real-Time Java Nadezhda Baklanova and Martin Strecker IRIT (Institut de Recherche en Informatique de Toulouse) Université de Toulouse 118 route de Narbonne, F-31062 Toulouse CEDEX 9, France [email protected], [email protected] Abstract. We present a tool for analysing resource sharing conflicts in multithreaded Java programs. Java programs ...
متن کامل